﻿// JScript 文件
var msgValue="";
/*
=========================================================
用于对当前页面控件输入值的验证
=========================================================
*/
function Checked()
{
    var kind=ValidateTextBox();
    if(kind==false)
    {
        return false;
    }
    kind=ValidataDropList();
    if(kind==false)
    {
        return false;
    }
    kind=ValidataTextArea();
    if(kind==false)
    {
        return false;
    }
    return true;
}
/*
===================================================
验证大文本框的长度

===================================================
*/
function ValidataTextArea()
{
    var returnValues=true;
    var inputs = document.getElementsByTagName("textarea");
    for(var i=0;i<inputs.length;i++)
    {
        var txtlen=0;
        if(inputs[i].attributes["textlength"]!=null)
        {
            txtlen=inputs[i].attributes["textlength"].value.toLowerCase();
        }
        var Notice="";
        if(inputs[i].attributes["notice"]!=null)
        {
            Notice=inputs[i].attributes["notice"].value;
        }
        if(txtlen>0)
        {
            if(inputs[i].value.length>txtlen)
            {
                alert(Notice + "输入的字符大多！");
                returnValues=false;
                break;
            }
        }
        var v="";
        v=StrTrim(inputs[i].value);
        kind=Validata(inputs[i],v);
        if(kind==false)
        {
            returnValues=false;
            break;
        }
    }
    return returnValues;
}
/*
===================================================
验证下拉框是否为必填
===================================================
*/
function ValidataDropList()
{
    var returnValues=true;
    var inputs=document.getElementsByTagName("select");
    var kind=true;
    for(var i=0;i<inputs.length;i++)
    {
        var v="";
        v=StrTrim(inputs[i].value);
        kind=Validata(inputs[i],v);
        if(kind==false)
        {
            returnValues=false;
            break;
        }
    }
    return returnValues;
}
/*

===========================================================
验证文本框输入的是否正确
===========================================================
*/
function ValidateTextBox()
{
    var returnValues=true;
    var inputs=document.getElementsByTagName("input");
    var kind=true;
    for(var i=0;i<inputs.length;i++)
    {
        var v="";
        
        if(inputs[i].type=="text" || inputs[i].type=="password")
        {            
            if(inputs[i].disabled==true)
            {
                continue;
            }
            v=StrTrim(inputs[i].value);
            if(v=="")
            {
                inputs[i].value="";
                
            }
            kind=Validata(inputs[i],v);
            if(kind==false)
            {
                returnValues=false;
                break;
            }
        }
    }
    return returnValues;
}

/*
===================================================================
验证输入的值

===================================================================
*/
function Validata(ctrl,val)
{
    var returnValues=true;
    //验证信息
    var Notice="";
    if(ctrl.attributes["notice"]!=null)
    {
        Notice=ctrl.attributes["notice"].value;
    }
    
    //判断是否可以为空
    var Null="true";
    if(ctrl.attributes["null"]!=null)
    {
        Null=ctrl.attributes["null"].value.toLowerCase();
        if(Null=="false" && val=="")
        {
            alert(Notice + "不能为空！");
            try{ctrl.focus();}catch(e){}
            returnValues=false;
        }
    }
    //字段类型
    var NewType="varchar";
    if(ctrl.attributes["newtype"]!=null)
    {
        NewType=ctrl.attributes["newtype"].value.toLowerCase();
    }
    if(val!="")//FieldType!="string" &&
    {
        if(!CheckText(val,NewType))
        {
            try{ctrl.focus();}catch(e){}
            alert(Notice + "输入有误！"+msgValue);
            returnValues=false;
        }
    }
    return returnValues;
}
/*-------------对输入的值进行验证-------------------------------*/
function CheckText(v,type)
{
    var returnValue=false;
    switch(type.toLowerCase())
	{
		case "int":
			returnValue=IsNumber(v);
			break;
        case "varchar":
        case "string":
            returnValue = CheckOtherChars(v); ;
		    break;
		case "double":
		    returnValue=isFloat(v);
		    break;
		case "date":
		case "datetime":
		    returnValue = isDate(v);
		    break;
		case "mail":
		    returnValue=isEmail(v);
		    break;
		case "tw":   
		    returnValue=CheckTw(v);
		    break; 
		case "mb":
		    returnValue=CheckMb(v);
		    break;
		case "hx":
		    returnValue=CheckHx(v);
		    break;
		case "longdate":
		    returnValue=isLongDate(v);
		    break;
		case "byte":
		    returnValue=true;
		    break;
		
	}
	return returnValue;
}
/*
====================================================================================
检测字符串是否有非法字符
====================================================================================
*/ 
function  CheckOtherChars(str)
{  
//  msgValue=""; 
//  var chars ="!%'/;'\"$^*|";   
//  var i;  
//  for(i=0; i<str.length;i++)  
//  {
//       if(chars.indexOf(str.charAt(i))>=0)
//       {
//            msgValue="不能含有‘!%'/;'\"$^*|’非法字符！";
//            return false;
//       }
//      
//  } 
  return true;
 
} 

/*------------------------------------判断是否为短日期型-----------------------------------*/
function isDate(str)
{
   var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
   if (r == null)
       //return false;  // 如果是长日期格式,则返回 true
       return isLongDate(str);
   var d = new Date(r[1], r[3]-1, r[4]); 
   return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

/*
====================================================
比较两个字大小

====================================================
*/
function CheckNum(num1,num2)
{
	if(num1==num2)
	{
		return "=";
	}
	var x=Math.max(num1,num2);
	if(num1==x)
	{	
		return ">";
	}else
	{
		return "<";
	}
	
}
/* 
=========================================== 
//是否是正确的IP地址 
=========================================== 
*/ 
function IsIPAddress(str)
{
	var reSpaceCheck = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/;
	if (reSpaceCheck.test(str)) 
	{ 
		str.match(reSpaceCheck); 
		if (RegExp.$1 <= 255 && RegExp.$1 >= 0 && RegExp.$2 <= 255 && RegExp.$2 >= 0 && RegExp.$3 <= 255 && RegExp.$3 >= 0 
			 && RegExp.$4 <= 255 && RegExp.$4 >= 0) 
		{
			return true;
		}
		else 
		{
			return false; 
		}
	}
	else 
	{ 
		return false; 
	}
} 

/* 
=========================================== 
是否是正确的长日期 
=========================================== 
*/ 
function isLongDate(str) 
{
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/); 
	if(r==null) 
	{
		return false; 
	}
	var d = new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
	return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]); 
}

/* 
=========================================== 
//是否是手机号 
=========================================== 
*/ 
function isMobileNum(str) 
{ 
	return /^0{0,1}13[0-9]{9}$/.test(str); 
}

/* 
=========================================== 
//是否是邮件 
=========================================== 
*/ 
function isEmail(str)
{ 
	return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(str);
}

/* 
=========================================== 
//是否是邮编(中国) 
=========================================== 
*/ 
function isPostCode(str) 
{ 
	return /^[\\d]{6}$/.test(str);
} 

/* 
=========================================== 
//是否是有汉字 
=========================================== 
*/ 
function existChinese(str) 
{ 
	//[\u4E00-\u9FA5]為漢字﹐[\uFE30-\uFFA0]為全角符號 
	return /^[\x00-\xff]*$/.test(str); 
} 

/* 
=========================================== 
//是否是合法的文件名/目录名 
=========================================== 
*/ 
function isFileName(str) 
{ 
	return /[\\\/\*\?\|:"<>]/g.test(str); 
} 



/* 
=========================================== 
//是否是有效的电话号码(中国) 
=========================================== 
*/ 
function isPhoneCall(str)
{
	return /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/.test(str);
}


/* 
=========================================== 
//是否是数字 
=========================================== 
*/ 
function isNumeric(str,flag) 
{
	//验证是否是数字 
	//if(isNaN(this)) 
	//{
	//	return false; 
	//}
	switch(flag)
	{
		case null://数字
		case "":
			return true;
		case "+"://正数
			return/(^\+?|^\d?)\d*\.?\d+$/.test(this);
		case "-"://负数
			return/^-\d*\.?\d+$/.test(this);
		case "i"://整数
			return/(^-?|^\+?|\d)\d+$/.test(this);
		case "+i"://正整数

			return/(^\d+$)|(^\+?\d+$)/.test(this);
			
		case "-i"://负整数

			return/^[-]\d+$/.test(this);
		case "f"://浮点数

			return/(^-?|^\+?|^\d?)\d*\.\d+$/.test(this);
		case "+f"://正浮点数
		
			return/(^\+?|^\d?)\d*\.\d+$/.test(this);
		case "-f"://负浮点数
			return/^[-]\d*\.\d$/.test(this);
		default://缺省
		return true; 
	}
}

function isFloat(str)
{
	var a = str.match(/^(-?\d+)(\.\d+)?$/); 
    if (a == null)
    {
        return false;
    } 
    else
    {
	    return true;
    }
}
/*
====================================================================================
检测字符串是否全为数字 
====================================================================================
*/ 
function IsNumber(str) 
{ 
    msgValue="";
	var number_chars = "1234567890";
	var i;
	for (i=0;i<str.length;i++)
	{
		if (number_chars.indexOf(str.charAt(i))==-1) 
		{
		    msgValue="请输入整数！"
		    return false;
		}
	}
	return true; 
}

/*
======================================================================
判断是否是闰年

======================================================================
*/ 
function IsLeapYear(iYear) 
{ 
	if (iYear+"" == "undefined" || iYear+""== "null" || iYear+"" == "") 
		return false; 
	iYear = parseInt(iYear); 
	varisValid= false; 
	if((iYear % 4 == 0 && iYear % 100 != 0) || iYear % 400 == 0) 
		isValid= true;
	return isValid;
}
/*
======================================================
去除字符串左边及右边的空格
======================================================
*/
function StrTrim(str) {
    return str.replace(/(^\s*)|(\s*$)/g, "");
}
/*
======================================================
验证密码强度
======================================================
*/
function checkPwdStrength()
{
    var pwd=document.getElementById("ctl00_ContentPlaceHolder1_txt_PassWord").value;
    var result=PasswordStrength.StrengthLevel(pwd);
    var div1=document.getElementById("idSM1");
    var div2=document.getElementById("idSM2");
    var div3=document.getElementById("idSM3");
    if(pwd.length<=0)
    {
        div1.className="ob_pws0";
        div2.className="ob_pws0";
        div3.className="ob_pws0";
        return;
    }
    switch(result)
    {
        case "3":
            div1.className="ob_pws3";
            div2.className="ob_pws3";
            div3.className="ob_pws3";
            break;
        case "2":
            div1.className="ob_pws2";
            div2.className="ob_pws2";
            div3.className="ob_pws0";
            break;
        case "1":
            div1.className="ob_pws1";
            div2.className="ob_pws0";
            div3.className="ob_pws0";
            break;
        default:
            div1.className="ob_pws0";
            div2.className="ob_pws0";
            div3.className="ob_pws0";
            break;
    }
}

var PasswordStrength ={
     Level : ["3","2","1"],
     LevelValue : [30,20,0],//强度值
     Factor : [1,2,5],//字符加数,分别为字母，数字，其它
     KindFactor : [0,0,10,20],//密码含几种组成的加数 
     Regex : [/[a-zA-Z]/g,/\d/g,/[^a-zA-Z0-9]/g] //字符正则数字正则其它正则
     }
 PasswordStrength.StrengthValue = function(pwd)
  {
     var strengthValue = 0;
     var ComposedKind = 0;
     for(var i = 0 ; i < this.Regex.length;i++)
      {
         var chars = pwd.match(this.Regex[i]);
         if(chars != null)
          {
             strengthValue += chars.length * this.Factor[i];
             ComposedKind ++;
         }
     }
     strengthValue += this.KindFactor[ComposedKind];
     return strengthValue;
 } 
 PasswordStrength.StrengthLevel = function(pwd)
  {
     var value = this.StrengthValue(pwd);
     for(var i = 0 ; i < this.LevelValue.length ; i++)
      {
         if(value >= this.LevelValue[i])
             return this.Level[i];
     }
 }
 
 
 
//体温验证
 function CheckTw(str)
 {   
    msgValue="";
	
	if(isFloat(str))
      {
	    if(Number(str)<31||Number(str)>42)
        {
            msgValue="请输入31-42数字";
            return false;
        }
        else
        {
            return true;
        }
     }
     else
     {
       return false;
     }
  }
 //脉搏验证
 function CheckMb(str)
 {   
    msgValue="";
	
	if(IsNumber(str))
    {
   
	    if(Number(str)<45||Number(str)>190)
        {
            msgValue="请输入45-190数字";
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return false;
    }
  }
  //呼吸验证
 function CheckHx(str)
 {   
    msgValue="";
    if(IsNumber(str))
    {
   
	    if(Number(str)<25||Number(str)>50)
        {
            msgValue="请输入25-50数字";
            return false;
        }
        else
        {
            return true;
        }
    }
    else
    {
        return false;
    }
  }
